package com.woniuxy;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.Scanner;
import java.util.concurrent.TimeoutException;

public class MessagePublisher {
    public static void main(String[] args) throws IOException, TimeoutException {
        //建立连接
        ConnectionFactory cf = new ConnectionFactory();
        cf.setHost("localhost");
        cf.setPort(5672);
        Connection connection = cf.newConnection();

        //建立信道
        Channel channel = connection.createChannel();

        //创建交换机

        //创建消息队列
         /*
                queue – 队列名
                durable – 是否持久化，如果为true则会持久化 (服务器重启后仍存在)
                exclusive – 是否独占，true则为独占队列，其他链接不能使用
                autoDelete – 是否自动删除消息，true则在使用完后删除
                arguments – map类型，其他参数
            * */
        channel.queueDeclare("queue123",false,false,true,null);

        //发送消息
        /*
         exchange 交换机
         routing-key 路由键
         properties 属性
         body 消息体
         */
        Scanner scanner = new Scanner(System.in);
        while (true){
            String message = scanner.next();
            if ("exit".equals(message)){
                break;
            }
            channel.basicPublish("","queue123",null,message.getBytes("UTF-8"));
            System.out.println("[x] 消息发送成功！ "+message);
        }

    }
}
